<?php
require_once 'CMS/Util.php';
require_once 'CMS/User.php';
require_once 'CMS/Mvc/BaseController.php';
require_once 'CMS/Mvc/BaseAdminController.php';
require_once 'CMS/AdminCommon.php';

//Người tạo : Nguyễn Thanh Hải - Team 2
//Module 	: Install Widget
//Chức năng	: Xử lý việc install các widget

class Admin_InstallWidgetController extends BaseAdminController {
	private $dateInt;
	private $tbcontentModule;
	private $tbcontentModuleToPage;
	public function init()
	{
		parent::init();
		$this->_helper->layout()->setLayout('layoutadmin');
		$user = new User();
		$user->init();
		$user->check_login();
		$user->permission();
	}
	
	//Xử lý việc install widget trong sidebar bằng xmlhttp
	public function sidebarAction()
	{
		$user = new User();
		$user->init();
		$user->check_login();
		$hasmodify = $user->modifiy("admin/module");
		if($hasmodify==true)
		{
			$hasmodifywidget=$user->modifiy_widget($_GET["module"]);
			if($hasmodifywidget=="true")
			{
				if(isset($_GET["module"]))
				{
					if(isset($_GET["sort"])&&($_GET["sort"]!=null)&&($_GET["sort"]!=""))
					{
						if(is_numeric($_GET["sort"]) && $_GET["sort"] >=0 )
						{
							$tbSidebarModule = new Admin_Model_SidebarModule();
							$sort = $tbSidebarModule->selectModuleBySortOrder($_GET["sort"],$_GET["module"]);
							if(count($sort)<=0)
							{
								$dateInt = new Util();
								$insertData = array(
									"module_code" => $_GET["module"],
									"sort_order"  => $_GET["sort"],
									"created_date" => $dateInt->get_time_now(),
									"updated_date" => $dateInt->get_time_now(),
								);
								$tbSidebarModule->insertModule($insertData);
								$data =  1;
							}
							else 
							{
								$data = -4;
							}
						}
						else
						{
							$data =  -3;
						}
					}
					else 
					{
						$data = -2;
					}
				}
				else 
				{
					$data  = -1;
				}
			}
			else $data  = -5;
		}
		else $data  = -5;
		$this->_helper->json($data); 
	}
	
	public function editpageAction()
	{
		$dateInt = new Util();
		$tbcontentModule = new Admin_Model_ContentModule();
		$tbcontentModuleToPage = new Admin_Model_ContentModuleToPage();
		$tbdefaultModuleToPage = new Admin_Model_DefaultModuleToPage();
		$tbCurrentPage = new Admin_Model_CurrentPage();
		if(isset($_GET['page']) && $_GET['page']!=null && $_GET['page']!="")
		{
			$tbCurrentPage = new Admin_Model_CurrentPage();
			$is_page = $tbCurrentPage->selectPageByCode($_GET['page']);
			if(count($is_page)>0)
			{
				if(isset($_GET["module"]))
				{
					if(isset($_GET["sort"])&&($_GET["sort"]!=null)&&($_GET["sort"]!=""))
					{
						if(is_numeric($_GET["sort"]) && $_GET["sort"]>=0 )
						{
							$page = $is_page[0]['page_code'];
							$sort = $tbcontentModuleToPage->selectModuleBySortOrder($_GET["sort"],$_GET["module"],$page);
							$sort_default = $tbdefaultModuleToPage->selectModuleBySortOrder($_GET["sort"],$_GET["module"],$page);
							if(count($sort)<=0)
							{
								if(count($sort_default)<=0)
								{

									/*$existmodule = $tbcontentModule->selectModuleByCode($_GET["module"]);
									if(count($existmodule)<=0)
									{*/
										$insertData_content = array(
											"module_code" => $_GET["module"],
											"created_date" => $dateInt->get_time_now(),
											"updated_date" => $dateInt->get_time_now(),
										);
										$tbcontentModule->insertModule($insertData_content);
									//}
									$insertmoduletopage = array(
										"module_code" => $insertData_content["module_code"],
										"page_code" => $page,
										"sort_order" => $_GET["sort"],
									);
									$tbcontentModuleToPage->insertModuleToPage($insertmoduletopage);
									$tbCurrentPage->updateCurrentPage($dateInt->get_time_now(), $page);
									
									$data_homepage =  1;
								}
								else 
								{
									$data_homepage = -4;
								}
							}
							else 
							{
								$data_homepage = -4;
							}
						}
						else
						{
							$data_homepage =  -3;
						}
					}
					else 
					{
						$data_homepage = -2;
					}
				}
				else 
				{
					$data_homepage  = -1;
				}
			}
		}
		$this->_helper->json($data_homepage); 
	}
	
	public function updatepageAction()
	{
		$dateInt = new Util();
		$tbcontentModule = new Admin_Model_ContentModule();
		$tbcontentModuleToPage = new Admin_Model_ContentModuleToPage();
		$tbdefaultModuleToPage = new Admin_Model_DefaultModuleToPage();
		$tbCurrentPage = new Admin_Model_CurrentPage();
		if(isset($_GET['page']) && $_GET['page']!=null && $_GET['page']!="")
		{
			$tbCurrentPage = new Admin_Model_CurrentPage();
			$is_page = $tbCurrentPage->selectPageByCode($_GET['page']);
			if(count($is_page)>0)
			{
				if(isset($_GET["module"]))
				{
					if(isset($_GET["sort"])&&($_GET["sort"]!=null)&&($_GET["sort"]!=""))
					{
						if(is_numeric($_GET["sort"]) && $_GET["sort"]>=0)
						{
							$page = $is_page[0]['page_code'];
							$sort = $tbcontentModuleToPage->selectModuleBySortOrder($_GET["sort"],$_GET["module"],$page);
							$sort_default = $tbdefaultModuleToPage->selectModuleBySortOrder($_GET["sort"],$_GET["module"],$page);
							if(count($sort)<=0)
							{
								if(count($sort_default)<=0)
								{						
									$tbcontentModuleToPage->updateContentModuleToPage($_GET["sort"],$_GET["module"],$page);
									$tbCurrentPage->updateCurrentPage($dateInt->get_time_now(), $page);
									$data_homepage =  1;
								}
								else 
								{
									$data_homepage = -4;
								}
							}
							else 
							{
								$data_homepage = -4;
							}
						}
						else
						{
							$data_homepage =  -3;
						}
					}
					else 
					{
						$data_homepage = -2;
					}
				}
				else 
				{
					$data_homepage  = -1;
				}
			}
			else $data_homepage  = -1; 
		} 
		else $data_homepage  = -1;
		$this->_helper->json($data_homepage); 
	}
	
	public function updatedefaultmoduleAction()
	{
		$dateInt = new Util();
		$tbcontentModule = new Admin_Model_ContentModule();
		$tbcontentModuleToPage = new Admin_Model_ContentModuleToPage();
		$tbdefaultModuleToPage = new Admin_Model_DefaultModuleToPage();
		$tbCurrentPage = new Admin_Model_CurrentPage();
		if(isset($_GET['page']) && $_GET['page']!=null && $_GET['page']!="")
		{
			$tbCurrentPage = new Admin_Model_CurrentPage();
			$is_page = $tbCurrentPage->selectPageByCode($_GET['page']);
			if(count($is_page)>0)
			{
				if(isset($_GET["module"]))
				{
					if(isset($_GET["sort"])&&($_GET["sort"]!=null)&&($_GET["sort"]!=""))
					{
						if(is_numeric($_GET["sort"]) && $_GET["sort"]>=0)
						{
							$page = $is_page[0]['page_code'];
							$sort = $tbcontentModuleToPage->selectModuleBySortOrder($_GET["sort"],$_GET["module"],$page);
							$sort_default = $tbdefaultModuleToPage->selectModuleBySortOrder($_GET["sort"],$_GET["module"],$page);
							if(count($sort)<=0)
							{
								if(count($sort_default)<=0)
								{						
									$tbdefaultModuleToPage->updateDefaultModuleToPage($_GET["sort"],$_GET["module"],$page);
									$tbCurrentPage->updateCurrentPage($dateInt->get_time_now(), $page);
									$data_homepage =  1;
								}
								else 
								{
									$data_homepage = -4;
								}
							}
							else 
							{
								$data_homepage = -4;
							}
						}
						else
						{
							$data_homepage =  -3;
						}
					}
					else 
					{
						$data_homepage = -2;
					}
				}
				else 
				{
					$data_homepage  = -1;
				}
			}
			else $data_homepage  = -1; 
		} 
		else $data_homepage  = -1;
		$this->_helper->json($data_homepage); 
	}
	public function updatemoduleAction()
	{
		$dateInt = new Util();
		$tbSidebarModule = new Admin_Model_SidebarModule();
		$user = new User();
		$user->init();
		$user->check_login();
		$hasmodify = $user->modifiy("admin/module");
		if($hasmodify==true)
		{
			$hasmodifywidget=$user->modifiy_widget($_GET["module"]);
			if($hasmodifywidget=="true")
			{
				if(isset($_GET["module"]))
				{
					if(isset($_GET["sort"])&&($_GET["sort"]!=null)&&($_GET["sort"]!=""))
					{
						if(is_numeric($_GET["sort"]) && $_GET["sort"]>=0)
						{
							$sort = $tbSidebarModule->selectModuleBySortOrder($_GET["sort"],$_GET["module"]);
							if(count($sort)<=0)
							{
								$tbSidebarModule->updateSidebar($_GET["sort"],$_GET["module"]);
								$data_homepage =  1;
							}
							else 
							{
								$data_homepage = -4;
							}
						}
						else
						{
							$data_homepage =  -3;
						}
					}
					else 
					{
						$data_homepage = -2;
					}
				}
				else 
				{
					$data_homepage  = -1;
				}
			}
			else $data_homepage  = -5;
		}else $data_homepage  = -6;
		$this->_helper->json($data_homepage); 
	}
}